package com.xj.algorithm.leetcode;

/**
 * 字符串中的单词数
 */
public class L434_字符串中的单词数 {

    /**
     * 统计字符串中的单词个数，这里的单词指的是连续的不是空格的字符。
     *
     * 请注意，你可以假定字符串里不包括任何不可打印的字符。
     *
     * 示例:
     *
     * 输入: "Hello, my name is John"
     * 输出: 5
     */
    public static void main(String[] args) {
        System.out.println(countSegmentsOffice("Hello, my name is John"));
        System.out.println(countSegmentsOffice(""));
        System.out.println(countSegmentsOffice(", , , ,        a, eaefa"));
    }

    //自己的解法；调用库函数
    public static int countSegments(String s) {
        int count=0;
        String[] res=s.split(" ");
        for(String value:res){
            if(!"".equals(value)){
                count++;
            }
        }
        return count;
    }

    //官方解法：调用库函数+正则表达式
    //\\s+表示一个或者多个空格
    public static int countSegmentsOffice(String s) {
        String trimmed = s.trim();
        if (trimmed.equals("")) {
            return 0;
        }
        return trimmed.split("\\s+").length;
    }
}
